<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>PostScript</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/PostScript"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-PostScript rootpage-PostScript skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">PostScript</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p class="mw-empty-elt">
</p>
<table class="infobox_v2 infobox infobox--frwiki noarchive">
<tbody><tr>
<td colspan="2" class="entete informatique" style="background-color:#EEEEEE;color:black;">PostScript<style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}
/* end https://fr.wikipedia.org/ */
</style>
</td></tr>
<tr><td colspan="3" style="text-align:center; line-height: 1.5em;"> </td></tr>
<tr>
<td colspan="2"><hr style="height:2px; color:inherit; background-color:#EEEEEE;"></td></tr>
<tr>
<th scope="row">Date de première version
</th>
<td><a href="1982" title="1982">1982</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Paradigme_(programmation)" title="Paradigme (programmation)">Paradigme</a>
</th>
<td>multiparadigme : orienté pile, <a href="Programmation_proc%C3%A9durale" title="Programmation procédurale">procédural</a>
</td>
</tr>
<tr>
<th scope="row">Auteurs
</th>
<td><a href="John_Warnock" title="John Warnock">John Warnock</a><br><a href="Chuck_Geschke" class="mw-redirect" title="Chuck Geschke">Chuck Geschke</a>
</td>
</tr>
<tr>
<th scope="row">Développeur
</th>
<td><a href="Adobe_Systems" class="mw-redirect" title="Adobe Systems">Adobe Systems</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Version_d'un_logiciel" title="Version d'un logiciel">Dernière version</a>
</th>
<td><span class="wd_p348">PostScript 3 (1997)</span>
</td>
</tr>
<tr>
<th scope="row">Typage
</th>
<td>Dynamique, fort
</td>
</tr>
<tr>
<th scope="row">Influencé par
</th>
<td><a href="Forth_(langage)" title="Forth (langage)">Forth</a>
</td>
</tr>
<tr>
<th scope="row">A influencé
</th>
<td><a href="Portable_Document_Format" title="Portable Document Format">PDF</a>
</td>
</tr>
<tr>
<th scope="row">Implémentations
</th>
<td>Adobe PostScript, TrueImage <a href="https://en.wikipedia.org/wiki/TrueImage" class="extiw external" title="en:TrueImage"><span class="indicateur-langue" title="Article en anglais : « TrueImage »">(en)</span></a>, <a href="Ghostscript" title="Ghostscript">Ghostscript</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Extension_de_nom_de_fichier" title="Extension de nom de fichier">Extension de fichier</a>
</th>
<td><span class="wd_p1195">ps</span>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<div class="infobox_v3 infobox infobox--frwiki noarchive large"><div class="entete icon informatique" style="background-color:#C0C0C0"><div>PostScript</div></div><div><div class="images" style="padding:2px 0"></div></div><table><caption style="text-align:center;background-color:#C0C0C0">Caractéristiques</caption><tbody><tr class=""><th scope="row"><a href="Extension_de_nom_de_fichier" title="Extension de nom de fichier">Extension</a></th><td class=""><div>
<span class="wd_p1195"><code>.ps</code></span></div></td></tr><tr class=""><th scope="row"><a href="Type_de_m%C3%A9dias" title="Type de médias">Type MIME</a></th><td class=""><div>
<span class="wd_p1163"><code> application/postscript</code></span></div></td></tr><tr class=""><th scope="row">Développé par</th><td class=""><div>
<span class="wd_p178"><a href="Adobe_(entreprise)" title="Adobe (entreprise)">Adobe</a></span></div></td></tr><tr class=""><th scope="row">Version initiale</th><td class=""><div>
<span class="wd_p571"><time datetime="1982" data-sort-value="1982" class="date-lien"><a href="1982" title="1982">1982</a></time></span></div></td></tr><tr class=""><th scope="row">Type de format</th><td class=""><div>
format de fichier d'impression</div></td></tr><tr class=""><th scope="row">Origine de</th><td class=""><div>
<a href="Encapsulated_PostScript" title="Encapsulated PostScript">Encapsulated PostScript</a></div></td></tr></tbody></table></div>
<p><b>PostScript</b> est un <a href="Langage_de_description_de_page" title="Langage de description de page">langage de description de page</a> mis au point par <a href="Adobe_Systems" class="mw-redirect" title="Adobe Systems">Adobe</a><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-LM2021_2-0" class="reference"><a href="#cite_note-LM2021-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>. Il repose sur des formulations <a href="Vecteur" title="Vecteur">vectorielles</a> de la plupart de ses éléments. Il sait aussi traiter les <a href="Image_matricielle" title="Image matricielle">images matricielles</a> (point par point).
</p><p>Ce langage inter-plateformes permet d'obtenir un <a href="Fichier_(informatique)" class="mw-redirect" title="Fichier (informatique)">fichier</a> unique comportant tous les éléments décrivant la page (textes, images, polices, couleurs, etc.).
</p><p>PostScript est devenu pratiquement un standard : la plupart des <a href="Imprimante" title="Imprimante">imprimantes</a> laser contiennent un interpréteur et peuvent traiter directement un document décrit selon ce format. Sur les autres, il faut utiliser un filtre logiciel en entrée pour convertir le langage PostScript au <a href="Raster_Image_Processor" title="Raster Image Processor">format raster</a> compréhensible par ces imprimantes.
</p><p>Le développement du PostScript est arrêté par Adobe depuis 2007, afin que le <a href="PDF" class="mw-redirect" title="PDF">PDF</a> puisse prendre la relève.
</p><p>D'autres descendants de PostScript sont :
</p>
<ul><li><a href="Display_PostScript" title="Display PostScript">Display PostScript</a> et <a href="NeWS" title="NeWS">NeWS</a>, tous deux concernant les systèmes de fenêtrage ;</li>
<li><a href="Encapsulated_PostScript" title="Encapsulated PostScript">Encapsulated PostScript</a>, format d'image basé sur PostScript.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Le_langage">Le langage</h2></div>
<p>Postscript est un langage complet, qui permet le codage de tout <a href="Algorithmique" title="Algorithmique">algorithme</a>. Bien qu'il soit tout à fait possible d'écrire directement de tels programmes<sup id="cite_ref-BlueBook_3-0" class="reference"><a href="#cite_note-BlueBook-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>, ils sont en général fabriqués par d'autres programmes, des pilotes d'impression par exemple.
</p><p>Postscript est indissociable de l'environnement dans lequel il sera exécuté. Étant donné le caractère totalement dynamique de ce langage, il sera en fait <a href="Langage_interpr%C3%A9t%C3%A9_informatique" class="mw-redirect" title="Langage interprété informatique">interprété</a>.
</p><p>L'interpréteur fonctionne en manipulant une pile et plusieurs dictionnaires.
La pile sert de stockage temporaire pour les paramètres des fonctions, puis pour leurs résultats.
Les dictionnaires permettent le stockage des variables, ainsi que le code des fonctions.
</p><p>Un programme PostScript est composé d'une séquence de mots séparés par des espaces, tabulation (TAB), <a href="Retour_chariot" title="Retour chariot">retour chariot</a> (CR), avance de ligne (LF), ou commentaires. L'interpréteur analyse chaque mot du programme PostScript séquentiellement en fonctionnant comme un calculateur en <a href="Notation_polonaise_inverse" title="Notation polonaise inverse">notation polonaise inverse</a>, c’est-à-dire que chaque mot est évalué, puis le (ou les) résultat(s) de cette évaluation est placé au sommet de la pile, et ainsi de suite.
</p><p>Exemple, pour effectuer le calcul numérique simple <i>b</i><sup>2</sup> - 4<i>ac</i>, cela pourra se coder :
<span style="display: block; margin-left:1.6em;"><code>b b mul 4 a mul c mul sub</code></span>
</p><p>PostScript utilise les cinq types de mots suivants :
</p>
<dl><dt>Constante numérique</dt>
<dd>entière (<code>123</code>) ou réelle (<code>3.14159</code>), l’évaluation ajoute la valeur numérique au sommet de la pile ;</dd>
<dt>Constante chaîne</dt>
<dd>ce sont des tableaux de caractères encadrés par des parenthèses, ex <code>(Abc)</code> représente la chaîne « Abc » ;</dd>
<dt>Référence à un nom</dt>
<dd><code>/a</code> représente le nom « a », qui pourra permettre de nommer une variable ou une fonction ; la référence est ajoutée au sommet de la pile ;</dd>
<dt>Nom</dt>
<dd>ce peut être le nom d'une procédure prédéfinie ou créée, d'une variable, d'un dictionnaire ; le nom est cherché dans les dictionnaires actifs, puis si c’est une valeur, elle est placée sur la pile, et si c’est une fonction, elle est appelée (exécutée) ; l'évaluation d’une fonction pourrait utiliser les valeurs au sommet de la pile et les remplacer par les éventuels résultats ;</dd>
<dt>Constructeur</dt>
<dd>quatre constructeurs permettent de créer des <a href="Structure_de_donn%C3%A9es" title="Structure de données">structures de données</a> de taille variable. Ils sont composés de caractères appariés qui délimitent le début et la fin de la structure :</dd></dl>
<ul><li>Caractères de délimitation :
<ul><li><code>[</code> et <code>]</code> : pour un tableau quelconque ;</li>
<li><code><</code> et <code>></code> : pour un tableau d’octets codés en hexadécimal ;</li>
<li><code><<</code> et <code>>></code> : pour un dictionnaire ;</li>
<li><code>{</code> et <code>}</code> : pour du code exécutable.</li></ul></li></ul>
<dl><dd>L'ouverture du constructeur place une marque sur la pile, puis, successivement, tous les éléments de cette structure. La fermeture du constructeur récupère tous les éléments depuis la marque d'ouverture dans la pile, « fabrique » la structure correspondante et la place sur la pile.</dd></dl>
<p>Les dictionnaires sont des tableaux avec seulement deux colonnes :
</p>
<ul><li>La première colonne contient une valeur utilisée comme index, qui peut être une référence à un nom ou à tout autre objet. Cet index devant être univoque, on ne peut le rencontrer sur deux lignes distinctes.</li>
<li>La seconde colonne contient une valeur quelconque, l'associant ainsi à l'index.</li></ul>
<p>Avec cette propriété, un dictionnaire fonctionne donc comme un tableau à une colonne, mais dont l'index peut être de type quelconque, sans être restreint à un simple intervalle d'entiers.
</p><p>Le dictionnaire est géré comme une <a href="Table_de_hachage" title="Table de hachage">table de hachage</a> (grâce à une <a href="Fonction_de_hachage" title="Fonction de hachage">fonction de hachage</a> prédéfinie par le langage lui-même), dont on peut définir à la création la taille initiale, en fonction du nombre de couples nom-valeur qu'on veut y stocker, afin de limiter les occurrences de collisions (cependant PostScript sait redimensionner dynamiquement un dictionnaire en fonction du nombre de collisions sur les noms, ou de son taux de remplissage). Les dictionnaires de PostScript servent principalement (mais pas seulement) à définir (dynamiquement) la <a href="Port%C3%A9e_(informatique)" title="Portée (informatique)">portée</a> des variables nommées et référencées ailleurs dans le langage.
</p><p>Parmi les <a href="Op%C3%A9rateur_(informatique)" title="Opérateur (informatique)">opérateurs</a> prédéfinis, le plus important est <code>def</code>, il permet d'ajouter une association nom-valeur dans le dictionnaire courant, ce qui permet de définir de nouvelles variables avec leur valeur, ou de modifier leur valeur, et de définir ou redéfinir des fonctions. On constate donc qu’en Postscript, le code exécutable est une donnée presque comme les autres, et peut être créé à la volée, modifié.
</p><p>Exemples :
</p>
<ul><li><code>/pi 3.14159 def</code> : définit la variable de nom pi, avec la valeur numérique 3,14159 ;</li>
<li><code>/compteur compteur 1 add def</code> : ajoute 1 à la variable nommée compteur ;</li>
<li><code>/incremente {1 add} def</code> : définit la fonction incremente, qui ajoute 1 au paramètre ;</li>
<li><code>/compteur compteur incremente def</code> : recherche la valeur associée à la variable nommée « compteur » dans le dictionnaire actuel et remplace ce nom par sa valeur, puis cette valeur est incrémentée grâce à la fonction définie au-dessus, et le résultat est stocké (par la fonction « def ») dans la variable nommée par « /compteur » dans le dictionnaire actuel. Autrement dit, la variable nommée « compteur » dans la portée d'un dictionnaire (en commençant la recherche par le dictionnaire actuel) sera incrémentée.</li></ul>
<p>Dans le dernier exemple ci-dessus, rien n'indique que la variable nommée « compteur » sera la même que celle dont on a extrait la valeur. En effet, « def » sert à stocker une association nom-valeur uniquement dans le dictionnaire actuel, et dans aucun autre dictionnaire de la pile de portées. Or, la lecture de la variable compteur (la seconde référence dans le code ci-dessus) peut retourner la valeur d'une variable trouvée dans un autre dictionnaire que le dictionnaire actuel (ou produire une exception à l'exécution si aucun des dictionnaires dans la pile de portées ne contient une variable de ce nom) : dans ce cas, une nouvelle variable sera ajoutée par « def » dans le dictionnaire actuel, sans modifier la variable d'origine là où elle a été trouvée, qui conservera donc sa valeur ; cependant tant que le dictionnaire courant sera actif, la nouvelle variable masquera l'ancienne. Ce dispositif permet donc de gérer des <a href="Variable_locale" title="Variable locale">variables locales</a> autrement que par une position relative dans la pile.
</p><p>PostScript peut différencier les références à une variable (par son nom indiqué après un <code>/</code>) et celles à sa valeur. Cependant la référence n'est résolue dans aucun dictionnaire de portée tant qu'on ne l'a pas associée à un dictionnaire pour la rechercher. Quand un nom est utilisé sans <code>/</code> initial, il est immédiatement recherché lors de la compilation de la fonction dans les dictionnaires de portée actifs (en commençant par le dictionnaire courant lors de la compilation et non celui qui sera actif à l'exécution de la fonction), alors le nom de la variable est remplacé à l'exécution dans la pile par la valeur associée à ce nom dans le dictionnaire où le nom a été trouvé.
</p><p>Aussi, pour créer une référence complète à une variable bien définie et non sa valeur ou une autre variable de même nom dans un autre dictionnaire, on doit indiquer non seulement le nom de cette variable, mais aussi une référence au dictionnaire qui la contient et où elle doit être recherchée. Si on ne référence pas le dictionnaire (par exemple en ne préfixant pas par un <code>/</code>), la résolution du nom est dynamique et peut donc référencer des variables différentes en fonction du <a href="Contexte_d'ex%C3%A9cution" title="Contexte d'exécution">contexte d'exécution</a>.
</p><p>Postcript définit donc deux contextes distincts d'utilisation d'une référence à une variable :
</p>
<ul><li>dans le contexte de compilation d'une définition de fonction, la référence trouvée dans le dictionnaire courant (au moment de la compilation) est résolue immédiatement, mais la valeur n'est pas immédiatement déréférencée ; au lieu de cela, la référence est empilée et sera stockée ensuite dans le code au moment où la fonction sera effectivement définie ;</li>
<li>puis lorsque le code de la fonction est exécutée, toute référence de variable empilée s'exécute en la remplaçant dans par la valeur de la variable indépendamment du dictionnaire courant.</li></ul>
<p>Ce comportement pour le déréferencement d'une variable (accès en lecture) est donc très différent de celui du stockage d'une variable avec <code>def</code> qui se fait toujours selon le dictionnaire courant au seul moment de l'exécution.
</p>
<div class="mw-heading mw-heading3"><h3 id="Opérateurs"><span id="Op.C3.A9rateurs"></span>Opérateurs</h3></div>
<table border="0">
<tbody><tr>
<td></td>
<td><i>quelconque</i></td>
<td><b>pop</b></td>
<td>—</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>élimine l'élément de la pile
</td></tr>
<tr>
<td>quelconque<sub>1</sub></td>
<td>quelconque<sub>2</sub></td>
<td><b>exch</b></td>
<td>quelconque<sub>2</sub></td>
<td>quelconque<sub>1</sub></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>échange les deux éléments
</td></tr>
<tr>
<td></td>
<td></td>
<td><b>…</b></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>…
</td></tr>
<tr>
<td><i>nombre</i><sub>1</sub></td>
<td><i>nombre</i><sub>2</sub></td>
<td><b>add</b></td>
<td><i>somme</i></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>renvoie <i>nombre</i><sub>1</sub> plus <i>nombre</i><sub>2</sub>
</td></tr>
<tr>
<td><i>nombre</i><sub>1</sub></td>
<td><i>nombre</i><sub>2</sub></td>
<td><b>div</b></td>
<td><i>quotient</i></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>renvoie <i>nombre</i><sub>1</sub> divisé <i>nombre</i><sub>2</sub>
</td></tr>
<tr>
<td><i>entier</i><sub>1</sub></td>
<td><i>entier</i><sub>2</sub></td>
<td><b>idiv</b></td>
<td><i>quotient</i></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>renvoie <i>entier</i><sub>1</sub> divisé <i>entier</i><sub>2</sub>
</td></tr>
<tr>
<td></td>
<td></td>
<td><b>…</b></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>…
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Implémentation"><span id="Impl.C3.A9mentation"></span>Implémentation</h2></div>
<p>PostScript est fourni sous licence de la société Adobe. Néanmoins il existe un interpréteur PostScript libre, <a href="Ghostscript" title="Ghostscript">Ghostscript</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2018"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://producthabits.com/adobe-95-billion-saas-company/"><cite style="font-style:normal;" lang="en">How Adobe Became a Successful $95 Billion SaaS Company</cite></a> », sur <span class="italique">Product Habits</span>, <time class="nowrap" datetime="2018-01-15" data-sort-value="2018-01-15">15 janvier 2018</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2019-03-14" data-sort-value="2019-03-14">14 mars 2019</time>)</small></span></span>
</li>
<li id="cite_note-LM2021-2"><span class="mw-cite-backlink"><a href="#cite_ref-LM2021_2-0">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Six2021"><span class="ouvrage" id="Nicolas_Six2021">Nicolas Six, « <cite style="font-style:normal">Charles Geschke, pionnier de l’informatique et cofondateur d’Adobe, est mort</cite> », <i><a href="Le_Monde" title="Le Monde">Le Monde</a></i>, <time class="nowrap" datetime="2021-04-19" data-sort-value="2021-04-19">19 avril 2021</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://www.lemonde.fr/pixels/article/2021/04/19/charles-geschke-pionnier-de-l-informatique-et-cofondateur-d-adobe-est-mort_6077319_4408996.html">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Charles+Geschke%2C+pionnier+de+l%E2%80%99informatique+et+cofondateur+d%E2%80%99Adobe%2C+est+mort&rft.jtitle=Le+Monde&rft.aulast=Six&rft.aufirst=Nicolas&rft.date=2021-04-19&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostScript"></span></span></span></span>
</li>
<li id="cite_note-BlueBook-3"><span class="mw-cite-backlink"><a href="#cite_ref-BlueBook_3-0">↑</a> </span><span class="reference-text"><span class="ouvrage" id="GeschkeWarnock1985"><span class="ouvrage" id="Charles_GeschkeJohn_Warnock1985"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Charles Geschke et <a href="John_Warnock" title="John Warnock">John Warnock</a>, <cite class="italique" lang="en">PostScript Language - Tutorial and Cookbook</cite>, Addison & Wesley Publ., <time>1985</time> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">0-201-10179-3</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=PostScript+Language+-+Tutorial+and+Cookbook&rft.pub=Addison+%26+Wesley+Publ.&rft.aulast=Geschke&rft.aufirst=Charles&rft.au=John+Warnock&rft.date=1985&rft.isbn=0-201-10179-3&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostScript"></span></span></span></span>
</li>
</ol></div>
</div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="Encapsulated_PostScript" title="Encapsulated PostScript">Encapsulated PostScript (EPS)</a> - Format d'images en Postscript</li>
<li><a href="Ghostscript" title="Ghostscript">Ghostscript</a> - Interpréteur PostScript et PDF, libre, toutes plates-formes et ses <a href="Interface_graphique" title="Interface graphique">interfaces graphiques</a> : GSView, etc.</li>
<li><a href="Portable_Document_Format" title="Portable Document Format">Portable Document Format</a></li>
<li><a href="PostScript_Printer_Description" title="PostScript Printer Description">PostScript Printer Description</a></li>
<li><a href="Fonte_PostScript" title="Fonte PostScript">Fonte PostScript</a></li>
<li><a href="ReGIS" title="ReGIS">ReGIS</a></li>
<li><a href="SVG" class="mw-redirect" title="SVG">SVG</a></li>
<li><a href="TeX" title="TeX">TeX</a>, <a href="LaTeX" title="LaTeX">LaTeX</a></li>
<li><a href="Printer_Command_Language" class="mw-redirect" title="Printer Command Language">Printer Command Language</a></li>
<li><a href="XML_Paper_Specification" title="XML Paper Specification">XML Paper Specification</a> - Format de description de pages développé par Microsoft</li>
<li><a href="Forth_(langage)" title="Forth (langage)">Forth</a> - <a href="Langage_de_programmation" title="Langage de programmation">Langage de programmation</a> basé sur les mêmes principes (pile, dictionnaire, notation polonaise inverse...)</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.adobe.com/products/postscript/resources.htm">Adobe PostScript 3</a> sur le site d'Adobe</li></ul>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de l’informatique</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer skin-invert-image" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la typographie</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-08-05" href="https://fr.wikipedia.org/wiki/?title=PostScript&oldid=227882575">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>